Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Статус объектов с длительным временем срабатывания
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем > Экспертный клуб EVIKA: вопросы и ответы > Логический контроллер Logic Machine 2
dkapotov
Кто подскажет как решить проблему с правильным отображением статуса на объектах визуализации?
Например, есть жалюзи, время хода которых составляет около минуты. Если я создаю кнопку Вверх/Вниз в % с присвоением статуса от самой себя, то этот статус отражается неверно из-за длительного времени исполнения команды, плюс не обновляется при изменении положения жалюзи от других команд. Есть вариант взять статус со специального группового адреса по обратной связи. Пробовал. Получил проблему другого рода. Пытаюсь полозком в % изменить положение жалюзи, двигаю его, а полозок возвращается в исходное состояние... Приходится двигать его второй раз и только тогда срабатывает команда.

Есть еще одна особенность в кнопках со статусом от другого группового адреса. Если я создаю кнопку с двумя статусами (с эффектом "залипания"), при этом второй статус меняется по обратной связи от группового адреса, то постоянно получается следующее. Пользователь жмет на кнопку, она не "залипает", потому что требуется несколько секунд на отработку команд, человек думает, что кнопка не сработала и опять жмякает на нее... И так снова и снова. В результате жалюзи начинает лихорадить в бесконечной попытке понять чего же хочет от низ пользователь. Очень бы хотелось видеть следующую картину:
1. Пользователь нажал на кнопку, она залипла, показывая, что идет выполнение команды.
2. Статус кнопки в виде значения под ней не меняется до полного исполнения команды.
3. Кнопка во время исполнения команды не реагирует на повторные нажатия при условии, что в ее свойствах задан именно такой алгоритм.
4. После выполнения команды значение статуса под кнопкой изменилось и разблокировало кнопку для дальнейшего использования.
nick2
я бы сделал кнопку двух цветов.
например - красный светится постоянно - закрыто,
нажали - моргает зеленый до окончания действия команды, открылись - зеленый постоянно.
команда на закрытие - моргает красный, механизм отработал - красный горит постоянно
dkapotov
Цитата(nick2 @ 17.1.2013, 4:08) *
я бы сделал кнопку двух цветов.
например - красный светится постоянно - закрыто,
нажали - моргает зеленый до окончания действия команды, открылись - зеленый постоянно.
команда на закрытие - моргает красный, механизм отработал - красный горит постоянно


Ну так я и хочу так сделать. Только проблема в том, что кнопка меняет свой статус либо сразу после нажатия (если получает статус от главного объекта, т.е. от своего адреса, либо после получения квитанции о выполнении (уже с другого адреса, специально выделенного под обратную связь). В Logic Machine у объектов нет мультистатусов. "Моргает до окончания действия команды" - это тоже статус, причем отличный от начального и конечного, соответственно этот статус кто-то должен возвращать кнопке после ее нажатия.
Barbus
Сделайте второй объект. Будет кнопка отдельно, а отображение состояния - отдельно. Поставить,например, переключатель, он залип "с присвоением статуса от самой себя", а второй объект отображает действительное состояние. Или, ещё лучше, чтобы кнопка передавала требуемое состояние второму объекту, а тот сравнивал с тем, что есть на самом деле и сообщал, например: жалюзи открываются... Как-то так.
Arrow
Попробуйте сделать так. Создать три объекта визуализации с адресам которых нет в системе - это будут кнопки вверх и вниз, и статус.
Кнопкам вверх, вниз, поставить галочку - send fix value (0 и 1 соответственно), статусу - readonly
На кнопки повесить скрипты, которые проверяют состояние переменной статус, и если он занят то ничего не делают, иначе включают или выключает жалюзи соответственно. Объект статус обновляется либо при приходе сообщения с реальных жалюзи, а если устройство не умеет посылать телеграммы, то можно повесить постоянный скрипт который каждую секунду опрашивает состояние жалюзи и выставлять его объекту статус. Статус можно сделать как бинарным объектом так и текстовым (например в его писать run, stop и так далее). Кроме того можно использовать в анимационные гифкы как иконки
Arrow
Попробуйте сделать так. Создать три объекта визуализации с адресам которых нет в системе - это будут кнопки вверх и вниз, и статус.
Кнопкам вверх, вниз, поставить галочку - send fix value (0 и 1 соответственно), статусу - readonly
На кнопки повесить скрипты, которые проверяют состояние переменной статус, и если он занят то ничего не делают, иначе включают или выключает жалюзи соответственно. Объект статус обновляется либо при приходе сообщения с реальных жалюзи, а если устройство не умеет посылать телеграммы, то можно повесить постоянный скрипт который каждую секунду опрашивает состояние жалюзи и выставлять его объекту статус. Статус можно сделать как бинарным объектом так и текстовым (например в его писать run, stop и так далее). Кроме того можно использовать в анимационные гифки как иконки
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.